const Controller = require("egg").Controller;

/**
 * @Controller 缓存
 */
class MonCacheController extends Controller {
  /**
   * 获取缓存名称
   * @param {*} ctx
   */
  /**
   * @summary 缓存数据查询 查询缓存列表  
   * @description 缓存数据查询 查询缓存列表  
   * @Router get /monitor/cache/getNames
   * @response 200 MonitorCacheGetnames 操作成功
   */
  async getNames(ctx) {
    ctx.body = await ctx.service.monitor.cache.getNames();
    ctx.status = 200;
  }

  /**
   * 获取键名
   * @param {*} ctx
   */
  /**
   * @summary 查询键名列表  
   * @description 查询键名列表  
   * @Router get /monitor/cache/getKeys/{key}
   * @response 200 MonitorCacheGetkeys 操作成功
   */
  async getKeys(ctx) {
    ctx.body = await ctx.service.monitor.cache.getKeys(ctx.params.key);
    ctx.status = 200;
  }

  /**
   * 获取键值
   * @param {*} ctx
   */
  /**
   * @summary 查询键值  
   * @description 查询键值  
   * @Router get /monitor/cache/getValue/{keyType}/{key}
   * @response 200 MonitorCacheGetvalue 操作成功
   */
  async getValue(ctx) {
    ctx.body = await ctx.service.monitor.cache.getValue(
      ctx.params.keyType,
      ctx.params.key
    );
    ctx.status = 200;
  }

  /**
   * 清除缓存数据后重新载入
   * @param {*} ctx
   */
  /**
   * @summary 清理全部  
   * @description 清理全部  
   * @Router delete /monitor/cache/clearCacheAll
   * @response 200   操作成功
   */
  async clearCacheAll(ctx) {
    ctx.body = await ctx.service.tool.redis.flushall();
    ctx.status = 200;
  }
}

module.exports = MonCacheController;
